/*
* Armazena a lista de produtos selecionados pelo cliente 
 */
package model;

import java.util.ArrayList;

/**
 *
 * @author root
 */
public class Carrinho 
{
    private String loginUser;
    private String nomeUsuario;
    private double valorTotal;
    private ArrayList<ItemLinhaVenda> listaDeProdutos;
    
    public Carrinho()
    {}

    public Carrinho(String loginUser, String nomeUser) {
        this.loginUser = loginUser;
        this.nomeUsuario = nomeUser;
        this.valorTotal =0;
        this.listaDeProdutos = new ArrayList<ItemLinhaVenda>();
    }
    
    public boolean produtoAdd(Produto produto, int quantidade) //cria um itemLinhaVenda e adiciona a listaDeProdutos
    {
        Produto prodProcurado = null, prodAux;
        ItemLinhaVenda ilvProcurado=null;
        
        //procura produto na lista de produtos
        for(int i=0; i< this.listaDeProdutos.size(); i++)
        {
            prodAux = listaDeProdutos.get(i).getProduto();            
            if(prodAux.getId() == produto.getId())
            {
                prodProcurado = prodAux;
                ilvProcurado = listaDeProdutos.get(i);
            }
        }
        
        if(prodProcurado != null) //se o produto ja esta no carrinho
        {
            valorTotal -= ilvProcurado.getSubtotal();
            ilvProcurado.atualizaQuantidadeProduto(quantidade);
            valorTotal += ilvProcurado.getSubtotal();
            return true;
        }
        else //se o produto nao esta no carrinho
        {
            ItemLinhaVenda ilv = new ItemLinhaVenda(produto, quantidade);
            this.valorTotal += ilv.getSubtotal();
            this.listaDeProdutos.add(ilv);
            return true;
        }        
    }
    
    public boolean produtoDel(int produtoId) //retira um itemLinhaVenda da listaDeProdutos
    {
        ItemLinhaVenda ilv;
        Produto prod;
        for(int i=0; i< this.listaDeProdutos.size(); i++)
        {
            prod = this.listaDeProdutos.get(i).getProduto();
            ilv = this.listaDeProdutos.get(i);
            if(prod.getId() == produtoId)
            {
                //atualiza valor total do carrinho
                this.valorTotal -= ilv.getSubtotal();
                this.listaDeProdutos.remove(i);
            }
        }
  
        return true;
    }

    public String getLoginUser() {
        return loginUser;
    }

    public void setLoginUser(String loginUser) {
        this.loginUser = loginUser;
    }

    public String getNomeUser() {
        return nomeUsuario;
    }

    public void setNomeUser(String nomeUser) {
        this.nomeUsuario = nomeUser;
    }

    public ArrayList getListaDeProdutos() {
        return listaDeProdutos;
    }

    public void setListaDeProdutos(ArrayList<ItemLinhaVenda> listaDeProdutos) {
        this.listaDeProdutos = listaDeProdutos;
    }

    public double getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(double valorTotal) {
        this.valorTotal = valorTotal;
    }
    
    
}
